// pages/planSing/planSing.js
import common from '../../utils/js/common.js'
import ajax from '../../utils/js/ajax.js'
const audioDom = wx.createInnerAudioContext() //作品音频
const audioDomPart = wx.createInnerAudioContext() //片段音频
Page({
  /**
   * 页面的初始数据
   */
  data: {
    currentIndex: 0,
    navList:["作品","其他片段"],
    currentTime: 0,
    currentLrc: 0,
    singData:{
      status: 0, // 0 未播放  1 播放   2 暂停中  3 已结束
      lrcArr: [],
      timeArr: [],
    },
    useTime: 1,
    userChange: false,
    listTop: 0,
    changeTo: 0,
    currentWidth: 0,
    partList:[],
    coverUrl:''
  },

  getCurrentLrc() {
    let { timeArr } = this.data.singData
    let currentLrc = 0;
    timeArr.forEach((v, k) => {
      if (this.data.currentTime > this.getSecond(v)) {
        currentLrc = k
      }
    })

    // 更新当前歌词
    if (currentLrc !== this.data.currentLrc) {
      this.setData({ currentLrc, currentWidth: 0 }, () => {
        this.getCurrentWidth((currentWidth)=>{
          if (currentLrc < timeArr.length - 1) {
            let useTime = this.getSecond(timeArr[currentLrc + 1]) - this.getSecond(timeArr[currentLrc])
            // 根据当前的倍速来决定时间
            useTime = useTime / 1
            if (useTime > 10) {
              this.setData({ useTime: 10 })
              return
            }
            this.setData({ useTime, currentWidth })
          }
        })
      })
      if (!this.data.userChange) {
        this.scrollLrc(currentLrc)
      }
    } else {
      this.getCurrentWidth((currentWidth)=>{
        this.setData({ currentWidth })
      })
    }
  },
  getCurrentWidth(cb){
    let query = wx.createSelectorQuery().in(this)
    query.select('.lrcItemShow').boundingClientRect(function (res) {
      //console.log(res.width)
      if(res){
        cb && cb(res.width)
      }
    }).exec()
  },
  getSecond(t) {
    let minute = Number(t.slice(0, 2))
    let second = Number(t.slice(3, 5))
    let minS = Number(t.slice(7))
    return minS > 100 ? (minute * 60 + second + minS / 1000) : (minute * 60 + second + minS / 100)
  },
  // 歌词滚动
  scrollLrc(currentLrc) {
    if (currentLrc) {
      let listTop = currentLrc * 32
      this.setData({ listTop })
    }
  },
  // 滑动歌词调整进度
  handleMove() {
    // if(this.data.userChange){
    //   let query = wx.createSelectorQuery().in(this)
    //   query.select('.lrcList').boundingClientRect((res)=>{
    //     //console.log(res.top / 32)
    //     let currentLrc = (-Math.round(res.top / 32)) + 3
    //     let time = this.data.singData.timeArr[currentLrc]
    //     let currentTime = Math.ceil(common.getSecond(time))
    //     this.setData({ changeTo: currentTime })
    //   }).exec()
    // }
  },
  changeUserStatus(){
    clearTimeout(this.timer)
    this.setData({ userChange: true })
    this.timer = setTimeout(() => {
      this.setData({ userChange: false })
    }, 5000)
  },
  changeToLrc() {
    this.setData({ userChange: false }, () => {
      wx.seekBackgroundAudio({
        position: this.data.changeTo,
      })
    })
  },

  switchNav(e){
    this.setData({
      currentIndex: e.currentTarget.dataset.index,
      // 'singData.status': 0
    })
    // audioDom.pause()
    // audioDomPart.pause()
  },
  switchSelect(e){
    let index = e.currentTarget.dataset.index
    this.setData({
      [`partList[${index}].check`] : true
    })
    // 单选
    if(this.data.partList[index].check){
      this.data.partList.forEach((ele, k) => {
        if (k !== index) {
          this.setData({
            [`partList[${k}].check`]: false
          })
        }
      })
      // 播放音频
      audioDom.src = this.data.partList[index].fileUrl
      audioDom.play()
      this.setData({
        'singData.status': 1,
      })
    }
    console.log(this.data.partList[index])
    wx.removeStorageSync('currentResource')
    wx.setStorageSync('currentResource', this.data.partList[index])
    let { wordFileUrl } = wx.getStorageSync('currentResource')
    let { timeArr,lrcArr } = common.analysis(wordFileUrl)
    audioDom.src = wx.getStorageSync('currentResource').fileUrl
    this.setData({
      'singData.lrcArr': lrcArr,
      'singData.timeArr': timeArr,
    })
  },
  playAudio(){
    audioDom.play()
    this.setData({
      'singData.status': 1,
    })
  },
  playPause(){
    audioDom.pause()
    this.setData({
      'singData.status': 2,
    })
  },
  goSing(){
    console.log(' wx.navigateTo')
    wx.navigateTo({
      url: '/pages/music/detail',
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getDetail()

    // this.getCurrentLrc()

    audioDom.onEnded(() => {
      this.setData({
        'singData.status': 3,
      })
    })
    audioDom.onTimeUpdate(() => {
      this.setData({
        currentTime: audioDom.currentTime,
      })
      this.getCurrentLrc()
    })
  },
  getDetail() {
    // 测试数据
    let testData = {
     a_resource: "http://audio.22family.com/",
     i_resource: "http://audio.22family.com/",
     audio: {
       cover:'audio/cover/1553691847955147665',
       created:1553691849,
       id:4,
       lrc:`[00:00.000] 作曲 : 姬霄
       [00:01.000] 作词 : 花粥
       [00:04.95]混音：卢润泽
       [00:18.24]劫过九重城关 我座下马正酣
       [00:23.21]看那轻飘飘的衣摆 趁擦肩把裙掀
       [00:28.68]踏遍三江六岸 借刀光做船帆
       [00:35.56]任露水浸透了短衫 大盗睥睨四野
       [00:39.65]枕风宿雪多年 我与虎谋早餐
       [00:50.17]拎着钓叟的鱼弦 问卧龙几两钱
       [00:56.60]蜀中大雨连绵 关外横尸遍野
       [01:01.93]你的笑像一条恶犬 撞乱了我心弦
       [01:22.90]谈话饮月赋闲 这春宵艳阳天
       [01:26.00]待到梦醒时分睁眼 铁甲寒意凛冽
       [01:34.34]夙愿只隔一箭 故乡近似天边
       [01:40.88]不知何人浅唱弄弦 我彷徨不可前
       [01:55.48]枕风宿雪多年 我与虎谋早餐
       [01:59.05]拎着钓叟的鱼弦 问卧龙几两钱
       [02:03.18]蜀中大雨连绵 关外横尸遍野
       [02:07.46]你的笑像一条恶犬 撞乱我心弦
       [02:16.00]烽烟万里如衔 掷群雄下酒宴
       [02:23.33]谢绝策勋十二转 想为你窃玉簪
       [02:28.55]入巷间吃汤面 笑看窗边飞雪
       [02:37.55]取腰间明珠弹山雀 立枇杷于庭前
       [02:47.09]入巷间吃汤面 笑看窗边飞雪
       [02:50.70]取腰间明珠弹山雀 立枇杷于庭前`,
       name:'盗将行',
       singer:{
         avatar:'singer/avatar/1553742725639053013',
         name:'花僮',
       },
       singer_id:"1026069",
       type:0,
       url:'audio/url/1553691846205912532'
     }
   }

   let { wordFileUrl } = wx.getStorageSync('currentResource')
   let { timeArr,lrcArr } = common.analysis(wordFileUrl)
   console.log(lrcArr,'lrcArr')

   audioDom.src = wx.getStorageSync('currentResource').fileUrl
   this.setData({
     'singData.lrcArr': lrcArr,
     'singData.timeArr': timeArr,
     'coverUrl': wx.getStorageSync('currentResource').image,
   })
  //  let partListArr = [
  //    {
  //      url: 'https://nf-sycdn.kuwo.cn/30ddebe34820bf18cf91e3224751e6ea/662918cf/resource/n1/85/2/3796983418.mp3',
  //      lrc: `[00:00.000] 作曲 : 姬霄
  //      [00:01.000] 作词 : 花粥
  //      [00:04.95]混音：卢润泽
  //      [00:18.24]劫过九重城关 我座下马正酣
  //      [00:23.21]看那轻飘飘的衣摆 趁擦肩把裙掀
  //      [00:28.68]踏遍三江六岸 借刀光做船帆
  //      [00:35.56]任露水浸透了短衫 大盗睥睨四野`
  //    },
  //    {
  //     url: 'https://lw-sycdn.kuwo.cn/8bde3c61281889c958578aaa2ca28a34/66291903/resource/30106/trackmedia/M5000030FXuz4EWaRo.mp3',
  //     lrc: `[00:00.000]蜀中大雨连绵 关外横尸遍野
  //     [02:07.46]你的笑像一条恶犬 撞乱我心弦
  //     [02:16.00]烽烟万里如衔 掷群雄下酒宴
  //     [02:23.33]谢绝策勋十二转 想为你窃玉簪
  //     [02:28.55]入巷间吃汤面 笑看窗边飞雪
  //     [02:37.55]取腰间明珠弹山雀 立枇杷于庭前
  //     [02:47.09]入巷间吃汤面 笑看窗边飞雪
  //     [02:50.70]取腰间明珠弹山雀 立枇杷于庭前`
  //   },
  //   {
  //     url: 'https://lw-sycdn.kuwo.cn/8bde3c61281889c958578aaa2ca28a34/66291903/resource/30106/trackmedia/M5000030FXuz4EWaRo.mp3',
  //     lrc: `[00:00.000] 作曲 : 姬霄
  //     [00:01.000] 作词 : 花粥
  //     [00:04.95]混音：卢润泽
  //     [00:18.24]劫过九重城关 我座下马正酣
  //     [00:23.21]看那轻飘飘的衣摆 趁擦肩把裙掀
  //     [00:28.68]踏遍三江六岸 借刀光做船帆
  //     [00:35.56]任露水浸透了短衫 大盗睥睨四野`
  //   },
  //   {
  //    url: 'https://lw-sycdn.kuwo.cn/8bde3c61281889c958578aaa2ca28a34/66291903/resource/30106/trackmedia/M5000030FXuz4EWaRo.mp3',
  //    lrc: `[00:00.000]蜀中大雨连绵 关外横尸遍野
  //    [02:07.46]你的笑像一条恶犬 撞乱我心弦
  //    [02:16.00]烽烟万里如衔 掷群雄下酒宴
  //    [02:23.33]谢绝策勋十二转 想为你窃玉簪
  //    [02:28.55]入巷间吃汤面 笑看窗边飞雪
  //    [02:37.55]取腰间明珠弹山雀 立枇杷于庭前
  //    [02:47.09]入巷间吃汤面 笑看窗边飞雪
  //    [02:50.70]取腰间明珠弹山雀 立枇杷于庭前
  //    [00:00.000]蜀中大雨连绵 关外横尸遍野
  //    [02:07.46]你的笑像一条恶犬 撞乱我心弦
  //    [02:16.00]烽烟万里如衔 掷群雄下酒宴
  //    [02:23.33]谢绝策勋十二转 想为你窃玉簪
  //    [02:28.55]入巷间吃汤面 笑看窗边飞雪
  //    [02:37.55]取腰间明珠弹山雀 立枇杷于庭前
  //    [02:47.09]入巷间吃汤面 笑看窗边飞雪
  //    [02:50.70]取腰间明珠弹山雀 立枇杷于庭前`
  //  },
  //  ]
  //  partListArr.forEach(ele=>{
  //    ele.lrc = common.analysis(ele.lrc).lrcArr
  //    ele.check = false
  //  })
   
  //  this.setData({
  //   partList: partListArr
  // })
  // console.log(partListArr)
   ajax.get('/singer/getOperaExcerpt', { sysFileId: wx.getStorageSync('currentResource').sysFileId }).then(res => {
     console.log(res.data)
     if (res.code === 0) {
       console.log(res.data.excerpt)
       let partListArr = res.data.excerpt
       partListArr.forEach(ele=>{
        ele.lrc = common.analysis(ele.wordFileUrl).lrcArr
        ele.check = false
      })
      
      this.setData({
       partList: partListArr
     })
      //  let { a_resource, i_resource } = res.data;
      //  let { lrc, id, url, cover, singer, name } = res.data.audio
      //  let { timeArr, lrcArr } = common.analysis(lrc)
      //  props.setPlaying.call(this, { id, timeArr, lrcArr, url, singer, name, cover })
      //  props.setPlayer.call(this, { i_resource, a_resource, global_show: 1, status: 1 })

      //  this.playAudio()
     }
   })
 },



 onHide: function () {
  console.log('onHide')
  audioDom.stop()
  // audioDomPart.stop()
  this.setData({
    "singData.status": 0
  })
},
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    console.log('onUnloadonUnload')
    audioDom.stop()
    // audioDomPart.stop()
    this.setData({
      "singData.status": 0
    })
  },
})